/*
 * Paciente.h
 *
 *  Created on: 20/08/2012
 *      Author: Manoela Camila
 */

#include <string>
#include "Carteira.h"
#include "Agenda.h"

#ifndef PACIENTE_H_
#define PACIENTE_H_

class Paciente {
	private:
		/*Atributos*/
		int codigo;
		string nome;
		Data dataNascimento;

		Carteira carteira;
		Agenda agenda;
		//Carteira &carteira;
		//Agenda &agenda;

	public:
		string getNome() const;
		/*Método Construtor sem parâmetros*/
		Paciente();
		/*Método Construtor com parâmetro*/
		Paciente(string nome, Data dataNasc);
		/*Construtor de Cópia*/
		Paciente(const Paciente &);
		/*Métodos destrutores*/
		~Paciente();
		/*Métodos da classe - Interface*/
		int adicionarPaciente();
		int excluirPaciente();
		void alterarPaciente(string, Data);
		void alterarPaciente();
		void consultarPaciente();
		int getIdade() const;
		int getCodigo() const;
		Agenda getAgenda();
		Carteira getCarteira();
		Data getDataNascimento();
		/*Sobrecarga dos operadores de fluxo*/
		bool operator==(const Paciente &); //igualdade
		bool operator!=(const Paciente &); //desigualdade
		friend ostream& operator<<(ostream &, Paciente &); //cout
		friend istream& operator>>(istream &, Paciente &); //cin
};

#endif /* PACIENTE_H_ */
